The present invention relates to a cylinder identifying apparatus for a multi-cylinder internal combustion engine which identifies cylinders of the engine (i.e., an operating state of each cylinder) based on a single kind of reference position signal indicative of predetermined reference positions or rotational positions of a piston in each cylinder. More particularly, the invention relates to such a cylinder identifying apparatus which is able to prevent misidentification of cylinders particularly during the occurrence of misfiring in the cylinders.
In general, in order to control various aspects of engine operations such as ignition timing, fuel injection timing, etc., for each cylinder of a multi-cylinder internal combustion, a reference position signal indicative of predetermined reference rotational positions of a piston in each cylinder is employed which is generated by a signal generator in synchronization with the rotation of the engine. To this end, the signal generator senses the rotation of a crankshaft of the engine or a camshaft operatively connected with the crankshaft for synchronized rotation therewith.
FIG. 7 shows a common signal generator in a perspective view, and FIG. 8 is a circuit diagram of the signal generator of FIG. 7. In FIG. 7, a rotation shaft 1 such as a crankshaft of an unillustrated internal combustion engine or a camshaft operatively connected therewith rotates in synchronization with the rotation of the engine. A rotary disk 2 is mounted on the rotation shaft 1 for integral rotation therewith, and has a plurality of windows or slits 3, 3a which are formed through the rotary disk 2 and disposed concentrically around the axis of rotation of the rotary disk 2. The total number of slits 3, 3a corresponds to that of cylinders, and in this example, it is four for a four-cylinder engine. The slits 3, 3a each extend in a circumferential direction of the rotary disk 2. Three slits 3 have the same circumferential length which is different from or smaller than that of a slit 3a which corresponds to a specific cylinder. Each slit 3 has a pair of radial edges representative of predetermined reference rotational positions or crank positions for a corresponding cylinder, and the slit 3a also has opposite radial edges representative of predetermined reference rotational positions or crank positions for the specific cylinder, which are different from those of the remaining cylinders. A light emitting diode 4 and a photo diode 5 are disposed on the opposite sides of the rotary disk 2 fin an axially aligned relation with respect to each other so that a beam of light emitted from the light emitting diode 4 passes through one of the slits 3, 3a in the rotary disk 2 during rotation thereof and is received by the opposed photo diode 5.
In FIG. 8, an amplifying circuit 6 amplifies an output signal from the photo diode 5 and generates an amplified output signal to a base of an output transistor 7 which has an emitter connected to ground and an open collector from which an output signal in the form of a reference position signal L is output.
FIG. 9 shows the waveform of the reference position signal L output from the signal generator shown in FIGS. 7 and 8. As can be seen from FIG. 9, the reference position signal L comprises a series of rectangular pulses of which a specific pulse corresponding to the specific slit 3a and hence to the specific cylinder has a pulse width greater than that of the remaining three pulses corresponding to the slits 3 and hence to the remaining cylinders. Each specific pulse of a larger pulse width corresponding to the specific cylinder has a rising or leading edge which occurs at a crank angle of 75 degrees before top dead center (hereinafter simply designated at B75") of the specific cylinder #2, a falling or trailing edge which occurs at a crank angle of 5 degrees after top dead center (hereinafter simply designated at A5"), and a pulse width or high-level period t1 corresponding to the circumferential length of the specific slit 3a in the rotary disk 2. Each of the remaining pulses of a smaller pulse width corresponding to the remaining cylinders has a rising or leading edge which occurs at a crank angle of B75.degree. of a corresponding cylinder #1, #3 or #4, a falling or trailing edge which occurs at a crank angle of 5 degrees before top dead center of the corresponding cylinder (hereinafter simply designated at B5"), and a pulse width or a high-level period to corresponding to the circumferential length of a slit 3 for the corresponding cylinder. Thus, the falling edge of each specific pulse is displaced or offset by 10 degrees in the ignition-retarding direction. The period between the rising edges of successive pulses is designated at T.
When an operation of the engine such as ignition timing is controlled on the basis of the reference position signal L as shown in FIG. 9, an ignition timing is calculated by a timer from the first reference position B75" for each cylinder. Thus, in this case, no problem arises.
On the other hand, when the engine is cranking, ignition is carried out at the second reference position B5.degree. for cylinders #1, #3 and #4, whereas the specific cylinder #2 is ignited at a timing or crank angle A5" which retards by an angle of 10 degrees from the second reference position B5" for the remaining cylinders, In this connection, failure in engine starting results from too early ignition, so there will be no problem even if the ignition timing for the specific cylinder is controlled in an ignition retarding direction based on the waveform of the reference position signal of FIG. 9.
FIG. 10 illustrates, in block form, a conventional cylinder identification apparatus for an internal combustion engine as disclosed in Japanese Patent Laid-Open No. 2-102378 or 2-104979. In this figure, the apparatus includes a signal generator 8 such as that of FIGS. 7 and 8, an interface 9 shaping the waveform of a reference position signal L generated by the signal generator 8, and a control unit in the form of a microcomputer 10 to which the reference position signal L from the signal generator 8 is input via the interface 9.
The microcomputer 10 includes a cylinder identification means in the form of a cylinder identification register 11 for receiving the reference position signal L from the signal generator 8 via the interface 9 for performing cylinder identification, a first storage means in the form of a shift register 12 storing, as a first series, the result of cylinder identification performed by the cylinder identification register 11, a first determination means in the form of a normal series determination means 13 for determining whether the first series is normal (i.e., coincident with a predetermined normal or correct series), a second storage means in the form of a second register 14 for storing as a second series the first series which has been determined to be normal, and a second determination means in the form of a verifying means 15 for making a comparison between the stored contents of the first and second shift registers 12, 14 to verify whether the second series is normal (i.e., coincident with the predetermined normal series) and for rewriting the second series into a normal or correct one if the second series is determined to be abnormal (i.e., not coincident with the normal series). The verifying means 15 includes a rewrite counter which provides a determination reference for verifying the second series.
The operation of the above-described conventional cylinder identification apparatus of FIG. 10 will be described while referring to FIGS. 7 through 9.
As described above, during engine operation, the signal generator 8 generates, in synchronism with the rotation of the engine, a reference position signal L which is input to the microcomputer 10 via the interface 9. Based on the reference position signal L as shown in FIG. 9, the cylinder identification register 11 of the microcomputer 10 calculates the duty cycle of each cylinder (i.e., the ratio of the width t1, t2, t3 or t4 of each pulse in the reference position signal L to the period T between the successive pulses), and compares the duty cycles of the respective cylinders with each other to determine which one of the duty cycles is different from the others. In this case, it is determined that the pulse having a higher duty cycle than that of the other pulses corresponds to the specific cylinder #2. If the specific cylinder #2 is identified in this manner, the cylinder identification register 11 stores a digit "1", whereas if one of the other cylinders #1, #3 or #4 is identified, a digit "0" is stored in the first shift register 12. For example, the first shift register 12 has a capacity of eight bits, and sequentially stores an input signal from the cylinder identification register 11 to update the first series while successively shifting the content or 8-bit serial number in the register 12 bit by bit.
The normal series determining or verifying means 13 determines whether the first series stored in the first shift register 12 has a normal or correct bit pattern. Specifically, if the first series is coincident with one of the following bit patterns (1) through (4), it is determined to be normal or correct, and thus stored or registered in the second shift register 14. 00010001 . . . (1) 00100010 . . . (2) 01000100 . . . (3) 10001000 . . . (4)
Once the second series, which has been determined to be normal or correct, is registered in the second shift register 14, the second shift register 14 thereafter successively turns or shifts the above-mentioned second series in the following order as the engine cycle or stroke proceeds: EQU (1) .fwdarw.(2) .fwdarw.(3) .fwdarw.(4) .fwdarw.(1) .fwdarw.. . .
Accordingly, if the result of cylinder identification performed by the cylinder identification register 11 upon each engine cycle is always normal or correct, then the first series registered in the first shift register 12 and the second series registered in the second shift register 14 will coincide with each other.
Therefore, the verifying means 15 compares the first series registered in the first shift register 12 with the second series registered in the second shift register 14, and determines the second series to be normal or correct if there is agreement between the first and second series, but determines it to be abnormal or incorrect if there is disagreement therebetween. If it is determined that the second series is incorrect, the verifying means 15 rewrites or updates the second series into a correct one.
FIG. 11 is a flow chart showing the above-described cylinder identification process or routine carried out by the microcomputer 10. This interrupt routine is carried out in synchronization with the rising of each pulse of the reference position signal L for each engine cycle, i.e., at the first reference position B75".
First, in Step S0, the second series in the second shift register 14 is advanced as described above to meet the processing of engine cycles, and then in Step S1, a cylinder identification routine is carried out which will be described in detail later. In Step S2, the result of cylinder identification performed at each engine cycle is stored in the cylinder identification register 11 as a digit "1" or "0" according to the specific cylinder or the other cylinders.
Subsequently, in Step S2, the results of cylinder identification successively obtained in Step S1 are sequentially shifted bit by bit for each cylinder cycle and stored in the first shift register 12 as an eight bit signal.
In Step S3, it is checked whether the first series has already been determined to be normal. If not, then in Step S4, the verifying means 13 determines whether the first series coincides with one of the above-mentioned normal or correct series (1) through (4). If in Step S4 it is determined that the first series is normal or correct, then the program goes to Step S5 where the first series is stored in the second shift register 14 as a second series. If, however, the first series is determined to be abnormal or incorrect in Step S4, the program jumps into Step S11 while skipping Step S5.
On the other hand, in the event that it is confirmed in Step S3 the first series has already been determined as normal or correct, then in Step S6 the verifying means 15 compares the first series stored in the first shift register 12 with the second series stored in the second shift register 14 for verification of the second series.
If there is disagreement between the first and second series thus compared, then in Step S7 it is further determined whether the first series compared is normal. If so, the second series is determined to be abnormal and the second series rewrite counter is incremented in Step S8.
If, however, it is determined in Step S6 that the second series is normal, or if in step S7 it is determined that the first series is abnormal, then in Step S9 the second series rewrite counter is reset and in Step S11 the second series is reflected on engine control. Namely, using the second series as cylinder identification information, an unillustrated engine control unit performs calculations for engine control such as ignition timing, fuel injection timing, etc., and then waits for the following input at the rising of the following pulse of the reference position signal L. Thereafter, the program returns to the first Step S10 from Step S11.
Also, after incrementation of the rewrite counter in Step S8, it is determined in Step S10 whether the count of the rewrite counter is equal to or greater than a predetermined value n. If the answer is negative, the program goes to Step S11, whereas if the answer is positive, the program goes to Step S5.
Accordingly, if the count of the rewrite counter reaches the predetermined value n after repeated incrementations of the counter in Step S8, it is determined what the second series is abnormal, and the first series is stored in the second shift register 14 as a second series. Thus, the abnormal or incorrect second series is rewritten into a normal or correct series.
FIG. 12 is a flow chart showing the cylinder identification process performed in Step S12. As illustrated in FIG. 12, first in Step S20, a high-level duration t (t0, t1) of the reference position signal L and a total period T (a high-level duration plus a low-level duration) between the rising edges of successive pulses of the reference position signal L are calculated. Then, in Step S21, a pulse duty ratio of the high-level duration t to the total period T for each engine cycle is calculated.
Subsequently, in Step S22, the ratio t/T is averaged with a weight factor k (0&lt;k&lt;1) to provide a threshold a.sub.n, as follows: EQU a.sub.N =(1-k)a.sub.N -1+k(t/T).sub.N
where N is an ordinal number corresponding to the times of calculations.
In Step 823, the pulse duty ratio t/T for each cylinder as obtained in Step S21 is compared with the threshold a.sub.n. If a deviation or difference (t/T -a.sub.N) between the pulse duty ratio t/T and the threshold a.sub.N is greater than zero, it is identified in Step S24 that the pulse corresponds to the specific cylinder #2, and the cylinder identification register 11 is set to "1". If t/T -a.sub.N .ltoreq.0, however, it is identified in Step S25 that the pulse corresponds to one of the other cylinders #1, #3 and #4, and the cylinder identification register 11 is set to "0". After the cylinder identification Step S24 or S25, a return is performed to Step S2.
With the above-described conventional cylinder identification apparatus as constructed above, cylinder identification is carried out on the basis of the pulse duty ratio t/T of the reference position signal L without taking account of an occurrence of misfiring. Thus, in the event that there takes place a variation in the rotational speed of the engine due to misfiring, the determination for the pulse duty cycle of the reference position signal L in Step S23 can be in error. As a result of such misidentification, the second series is erroneously reflected on engine control as cylinder identification information so that resultant miscalculations of engine operating parameters such as ignition timing, fuel injection timing, etc., can cause improper engine operation or damage to the engine.